﻿#ifndef __TCP_H__
#define __TCP_H__
#include<string>
struct sockaddr_in;
class TCP
{
public:
	TCP();
	TCP(const std::string ip, const unsigned int port);
	TCP(const std::string ip, const unsigned int port, const size_t listenNum);
	~TCP();
	//创建套接字
	virtual const int socket(const std::string ip,const unsigned int port);
	//bind绑定
	const int bind();
	//连接服务器
	const int connect();
	//接受客户端的连接，返回其套接字
	const int accept(sockaddr_in* Sockaddr);
	//发送
	virtual const int send(const char*buf,const int len);
	virtual const int send(const int socket,const char* buf, const int len);
	//接收
	virtual const int recv(char* buf, const int len);
	virtual const int recv(const int socket,char* buf, const int len);
	//关闭套接字
	const int close(const int socket);
	const int close();
	//设置发送缓冲区
	const int setSendBuff(const int socket,const int len);
	const int setSendBuff(const int len);
	//设置接收缓冲区
	const int setRecvBuff(const int socket,const int len);
	const int setRecvBuff(const int len);
protected:
	const int socket(const std::string ip, const unsigned int port, const int type);
private:
	int m_socket=0;//套接字
	sockaddr_in* m_sockaddr=nullptr;//存储所有的套接字及ip等其信息
};
#endif // !__TCP_H__
